/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.rec.be;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

/**
 *
 * @author MiamiWebmasters
 */
@Entity
@Table(name = "REC_ADJUDICACION")
@NamedQueries({@NamedQuery(name = "Adjudicacion.findAll", query = "SELECT a FROM Adjudicacion a"), @NamedQuery(name = "Adjudicacion.findByIdAdjudicacion", query = "SELECT a FROM Adjudicacion a WHERE a.idAdjudicacion = :idAdjudicacion"), @NamedQuery(name = "Adjudicacion.findBySituacion", query = "SELECT a FROM Adjudicacion a WHERE a.situacion = :situacion"), @NamedQuery(name = "Adjudicacion.findByPrecioVenta", query = "SELECT a FROM Adjudicacion a WHERE a.precioVenta = :precioVenta")})
@PrimaryKeyJoinColumn(name = "ID_ADJUDICACION", referencedColumnName = "ID_PROCESO_COBRANZA")
public class Adjudicacion extends ProcesoCobranza implements Serializable {
    private static final long serialVersionUID = 1L;
    @Basic(optional = false)
    @Column(name = "ID_ADJUDICACION", nullable = false)
    private Long idAdjudicacion;
    @Column(name = "SITUACION", length = 100)
    private String situacion;
    @Column(name = "PRECIO_VENTA", precision = 53)
    private Double precioVenta;
    @JoinColumn(name = "ID_ADJUDICACION", referencedColumnName = "ID_PROCESO_COBRANZA", nullable = false, insertable = false, updatable = false)
    @OneToOne(optional = false, fetch = FetchType.LAZY)
    private ProcesoCobranza procesoCobranza;
    @OneToMany(mappedBy = "fidRecAjudicacion", fetch = FetchType.LAZY)
    private List<ActaVenta> actaVentaCollection;

    public Adjudicacion() {
    }

    public Adjudicacion(Long idAdjudicacion) {
        this.idAdjudicacion = idAdjudicacion;
    }

    public Long getIdAdjudicacion() {
        return idAdjudicacion;
    }

    public void setIdAdjudicacion(Long idAdjudicacion) {
        this.idAdjudicacion = idAdjudicacion;
    }

    public String getSituacion() {
        return situacion;
    }

    public void setSituacion(String situacion) {
        this.situacion = situacion;
    }

    public Double getPrecioVenta() {
        return precioVenta;
    }

    public void setPrecioVenta(Double precioVenta) {
        this.precioVenta = precioVenta;
    }

    public ProcesoCobranza getProcesoCobranza() {
        return procesoCobranza;
    }

    public void setProcesoCobranza(ProcesoCobranza procesoCobranza) {
        this.procesoCobranza = procesoCobranza;
    }

    public List<ActaVenta> getActaVentaCollection() {
        return actaVentaCollection;
    }

    public void setActaVentaCollection(List<ActaVenta> actaVentaCollection) {
        this.actaVentaCollection = actaVentaCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idAdjudicacion != null ? idAdjudicacion.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Adjudicacion)) {
            return false;
        }
        Adjudicacion other = (Adjudicacion) object;
        if ((this.idAdjudicacion == null && other.idAdjudicacion != null) || (this.idAdjudicacion != null && !this.idAdjudicacion.equals(other.idAdjudicacion))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.upn.sigemfi.rec.be.Adjudicacion[idAdjudicacion=" + idAdjudicacion + "]";
    }

}
